package com.epam.iunna.bookshop.controller.utils;

import java.util.Enumeration;
import java.util.Properties;

import javax.servlet.ServletRequest;

/**
 * 
 * Методы для работы с запросом клиента.
 * 
 */
public final class RequestUtils {
    /**
     * Пустой конструктор.
     */
    private RequestUtils() {

    }
    
    /**
     * Получам свойства из запроса.
     * @param request запрос к серверу.
     * @return запрос в виде обьекта Properties.
     */
    public static Properties getProperties(final ServletRequest request) {
        Enumeration paramNames = request.getParameterNames(); // выбераем из зипроса имена параметров
        Properties result = new Properties();
       
        while (paramNames.hasMoreElements()) { // перебераем все параметры
            String paramName = paramNames.nextElement().toString(); //имя параметра
            String paramValue = request.getParameter(paramName); //значение параметра
            paramValue = (paramValue != null && paramValue.equals("")) ? null // если значение параметра пустое то запис нулл
                    : paramValue;
            if (paramValue != null) { // если значение не пустое то записываем в результат пару
                result.setProperty(paramName, paramValue.trim());
            }
        }
        return result;
    }

    /**
     * Вытягиваем свойства из атрибута outputData в запросе.
     * @param request запрос.
     * @return свойство.
     */

    public static Properties getOutputData(final ServletRequest request) {
        return (Properties)request.getAttribute("outputData"); // атрибут outputData как Properties
    }

}
